#include <stdio.h>
#include <string.h>
#include <string.h>
#include <stdlib.h>
/*

char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n)

功能: 用于字符串拷贝赋值

函数名  strcpy  strncpy
参数    
    @dest    目标字符串
    @src     源字符串
    @n       拷贝的长度
        src 的长度 小于 n 往 dest 写入空字符
        src 的长度 大于 n 只往 dest 写入 n 个字节 
        作用 ： 保护
返回值
    dest的指针

char *strcat(char *dest, const char *src);
char *strncat(char *dest, const char *src, size_t n);

功能: 用于字符串拷贝链接

函数名  strcat  strncat
参数    
    @dest    目标字符串
    @src     源字符串
    @n       链接的长度
        src 的长度 小于 n 往 dest 写入空字符
        src 的长度 大于 n 只往 dest 写入 n 个字节 
        作用 ： 保护
返回值
    dest的指针

size_t strlen(const char *s);
功能:获取字符串的长度
参数:
    @ s     需要计算长度的字符串
返回值:
    返回s所指向的字符串中的字符数。

int strcmp(const char *s1, const char *s2);
int strncmp(const char *s1, const char *s2, size_t n);
功能:比较两个字符串
参数:
    @s1     字符串
    @s2     字符串
    @n      需要匹配的字节数
返回值
    相同 返回 0
    不相同 返回 非0

char *strchr(const char *s, int c);         // 查找第一个匹配字符
char *strrchr(const char *s, int c);        // 查找最后一个匹配的字符
char *strchrnul(const char *s, int c);      // 查找第一个匹配字符  如果没有找到 返回值为 字符串s末尾的指针
功能 从字符串中查找字符
参数 
    @s  字符串
    @c  字符出
返回值
    找到   指向字符串的指针
    没找到 NULL   // strchrnul 除外


char *strstr(const char *haystack, const char *needle);         // 从主字符串中找到 子串
char *strcasestr(const char *haystack, const char *needle);     // 忽略大小写
功能 从字符串中查找字符串
参数
    @haystack  主串
    @haystack  子串
返回值
    成功  找到的位置
    失败  返回 NULL 

strtok


张三，李四，王五
*/

char * add()
{
    char * str = malloc(128);
    strcpy(str , "你是张三");
    return str;
}


int main(int argc, char const *argv[])
{
    char buf[128];
    char buf_2[128];

    // 字符串拷贝赋值
    strncpy(buf , "今天天气真不错" , sizeof(buf));

    printf("strncpy  buf = %s\n" , buf );

    strcpy(buf , "是的是的");

    printf("strcpy  buf = %s\n" , buf );

    // 字符串 长度
    printf("strlen buf =  %ld\n" , strlen(buf));


    // 字符串 分割
    strcpy(buf , "张三,李四,王五");

    strcpy(buf_2 , strtok(buf , ","));
    printf("buf_2 %s\n" , buf_2);


    strcpy(buf , add());
    printf("buf = %s\n" , buf );

    return 0;
}




